﻿/*
 				________________________________COPYRIGHT_______________________________________
				Die Veröffentlichung dieses Objektes ist Illegal und wird strafrechtlich verfolgt
				werden. Sollte es zu einer Veröffentlichung kommen werden wir die Daten des
				Herrausgebers fündig machen und Anzeige erstatten. Desweiteren ist
				auch jeglicher Besitz dieses Objektes Illegal und kann ebenfalls als Grund für
				eine Anzeige verwendet werden.
				Ausnahmen der veröffentlichung und verleihung gelten nur wenn der Grundbesitzer
				diese durchführt.
				Die Uhrheberrechte dieses Objektes liegen der Entwickler Gruppe CyberScripting vor. 
                © 2011.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace cubeworld.ScreenManager
{
    class Options: Screen
    {
        Button menu = new Button("Menu",
            new Microsoft.Xna.Framework.Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 400));

        Rectangle[,] rect = new Rectangle[7, 5];

        Scrollbar sb = new Scrollbar(new Vector2(100, 50), "Render-distance");
        Scrollbar sb2 = new Scrollbar(new Vector2(100, 120), "Details");
        Scrollbar sb3 = new Scrollbar(new Vector2(100, 190), "Volume");
        Scrollbar sb4 = new Scrollbar(new Vector2(100, 260), "Sensitivity");
        CheckBox cb = new CheckBox("Enable monsters", false, new Vector2(500, 50));
        CheckBox cb2 = new CheckBox("Invert mouse", false, new Vector2(500, 100));


        public override void Init()
        {
            for (int x = 0; x < 7; x++)
            {
                for (int y = 0; y < 5; y++)
                {
                    rect[x, y] = new Rectangle(x * 200, y * 200, 200, 200);
                }
            }
            Load();
            menu.OnClick += new ClickEventHandler(back_onClick);
            base.Init();
        }

        public override void Update(float elapsedTime)
        {
            //throw new CubeWorldsException("Only a test", "This is a Test.");
            base.Update(elapsedTime);
        }

        public override void Render(float elapsedTime)
        {
            for (int x = 0; x < 7; x++)
            {
                for (int y = 0; y < 5; y++)
                {
                    Data.spriteBatch.Draw(Data.content.Load<Texture2D>("BlockTextures\\mars"), rect[x, y], Color.White);
                }
            }
            sb.Render();
            sb2.Render();
            sb3.Render();
            sb4.Render();
            cb.Render();
            cb2.Render();
            menu.Render(Data.spriteBatch);
            base.Render(elapsedTime);
        }

        private void back_onClick(object sender, EventArgs e)
        {
            StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\options.txt", false);
            sw.WriteLine(sb.getPercent());
            sw.WriteLine(sb2.getPercent());
            sw.WriteLine(sb3.getPercent());
            sw.WriteLine(sb4.getPercent());

            if (cb.getCheck())
                sw.WriteLine(1);
            else
                sw.WriteLine(0);

            if (cb2.getCheck())
                sw.WriteLine(1);
            else
                sw.WriteLine(0);

            sw.Close();

            Data.SetScreen(new TitleScreen());
        }

        private void Load()
        {
            try
            {
                StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\options.txt", false);
                sb.setPercent(Convert.ToInt32(sr.ReadLine()));
                sb2.setPercent(Convert.ToInt32(sr.ReadLine()));
                sb3.setPercent(Convert.ToInt32(sr.ReadLine()));
                sb4.setPercent(Convert.ToInt32(sr.ReadLine()));

                if (Convert.ToInt16(sr.ReadLine()) == 1)
                    cb.setCheck(true);
                else
                    cb.setCheck(false);

                if (Convert.ToInt16(sr.ReadLine()) == 1)
                    cb2.setCheck(true);
                else
                    cb2.setCheck(false);
            }
            catch
            {

            }
        }
    }
}
